/**
 * @param {number} bamboo_len
 * @return {number}
 */
var cuttingBamboo = function (bamboo_len) {
    // 初始化长度为 bamboo_len + 1 的数组，初始值都为 0
    const dp = Array(bamboo_len + 1).fill(0);
    // 初始化边界条件
    dp[2] = 1;
    // 从长度为 3 开始递推
    for (let i = 3; i <= bamboo_len; i++) {
        let curMax = 0;
        for (let j = 1; j < i; j++) {
            // 比较两种情况：不继续剪和继续剪
            curMax = Math.max(curMax, Math.max(j * (i - j), j * dp[i - j]));
        }
        // 更新 dp[i] 为当前最大乘积
        dp[i] = curMax;
    }
    return dp[bamboo_len];
};

// 示例调用
const bambooLen = 5;
console.log(cuttingBamboo(bambooLen)); 